1. Field of the Invention
The present invention relates generally to a wide area load distribution apparatus and method for allocating services provided to clients by a plurality of servers, depending on the states of load of the servers, and more particularly to a wide area load distribution apparatus and method in which the servers belonging to different networks are subjected to load distribution.
2. Description of the Related Arts
A recent rapid prevalence of internet and intranet is increasing a demand for effective utilization of servers providing network services and for service stability. An optimum service allocation for avoiding any access concentration to a specific server is indispensable for the effective utilization of the servers and stable service provision, so that a load distribution method for allocating the services depending on the state of load of the servers is desired.
Hitherto known as the load distribution method for performing service allocation depending on the server load state are a method utilizing a domain name system (hereinafter, referred to as DNS) and a method utilizing an virtual server. The method utilizing DNS is a method in which a plurality of DNSs are arranged in each network area in a distributed manner and in which an optimum server IP address is correlated with a domain name for each network area. Each DNS allows a single domain name to be correlated with a plurality of IP addresses so that a round robin selects an IP address for the transfer to the client. More specifically, when a client sends a domain name, e.g., xe2x80x9cwww, flab, fujitsu, co jpxe2x80x9d to a DNS arranged in an area to which the client belongs, the DNS which has received the domain name makes an access to a most significant first layer DNS lying outside the area, then to a DNS of each layer, i.e., from the first layer to a second layer, from the second layer to a third layer, and further from the third layer to a fourth layer. The client acquires a server IP address from the fourth layer DNS for sending. This IP address from the fourth layer DNS is cached by the DNS of the network to which the client belongs. When the same domain name is then received from another client, an IP address response is issued due to the cache hit. In the method utilizing the virtual server, a virtual server is disposed in front of a plurality of servers so that all the accesses from the clients pass through the virtual server, which allocates and relays service demands from the clients in ratios depending on the state of load of the servers. Known as this virtual server method is for example xe2x80x9cUXP/DS InfoDispatcherxe2x80x9d supplied by Fujitsu Ltd.
A load distribution mechanism for use in the method utilizing the virtual server is described in for example
I) xe2x80x9c4T-01 Smart Scatter: Internet/Intranet Load Distribution Mechanismxe2x80x94General Configuration and Control Partxe2x80x94xe2x80x9d 55th Information Processing National Conference Trans. 1997, by Satoru HOSOI, Eiichi TAKAHASHI, Takuya YAMADA, Koichi TAKABASHI, Motomitsu ADACHI; and
II) xe2x80x9c4T-2 Smart Scatter: Internet/Intranet Load Distribution Mechanismxe2x80x94Packet Allocation Partxe2x80x94xe2x80x9d 55th Information Processing National Conference Trans. 1997, by Yuji IMAI, Hiromitsu KISHIMOTO, Koichi TAKABASHI, Tsunehiko YAHAGI.
In the conventional load distribution method utilizing the DNS, however, among the externally provided first to fourth layer DNSs the fourth layer DNS manages the IP addresses of a plurality of servers for the domain name, so that if a response of only one IP address among them is made, this is cached in the DNS associated with the client. This allows the accesses to be concentrated to one server cached in the DNS, preventing the load distribution. Furthermore, the clients are fixed on an area to area basis, so that there must be estimated the number of clients in order to provide sufficient services. In the load distribution method utilizing the virtual server on the other hand, there are found no measures for the cases where all the servers to be subjected to the load distribution are in high load or at a stop. Furthermore, accordingly as the network scale becomes larger, the number of the servers to be subjected to the load distribution will increase, with the result that the accuracy of the load measurement of the servers belonging to the other network remote from the load distribution apparatus may lower. Thus, the load distribution apparatus itself may possibly become a bottleneck, preventing an appropriate load distribution, and imposing a restriction on the servers to be subjected to the load distribution.
According to a first aspect of the present invention there is provided a wide area load distribution apparatus and method ensuring a proper load distribution and failure concealment among servers belonging to different networks.
The present invention provides a wide area load distribution apparatus which allocates services provided to clients by a plurality of servers existing in the different networks, depending on the state of load of the servers. The wide area load distribution apparatus comprises a transfer transmission unit, a transfer reception unit, a server allocation unit, a server transfer unit, a client relay unit, a connection management unit and a load information management unit.
The server allocation unit allocates a service for a client packet from a client to a server of its own network or a server of the other network which is selected on the basis of load information.
The transfer transmission unit creates a transfer packet containing the client packet in the form of transfer data when the server allocation unit allocates the service to the server of the other network, to transfer the transfer packet by a predetermined transfer protocol to a wide area load distribution apparatus of the other network.
The transfer reception unit fetches the client packet from the transfer packet when the transfer packet is received from a wide area load distribution apparatus of said the other network. The server transfer unit converts the destination of the client packet fetched by the transfer reception unit from a transferor wide area load distribution apparatus address to a server address and converts the sender from a client address to a self address for sending the packet to the server.
The client relay unit converts the destination of a server packet which is a response to a transferred service from a server, from a self address to a client address and converts the sender from a server address to a transferor wide area load distribution apparatus address for relaying the packet to the client.
Furthermore, the connection management unit holds for each service a correlation for retrieval among a client, a transferee and a server for a packet processed by the server allocation unit, the transfer transmission unit, the transfer reception unit, the server transfer unit and the client transfer unit.
Such a wide area load distribution apparatus enables the servers belonging to different networks to be subjected to load distribution without impairing the service consistency, with the result that the sites of arrangement of the servers to be subjected to the load distribution can freely be determined.
Furthermore, the protocol for use in the transfer can freely be determined, so that it becomes possible to enhance the flexibility and efficiency including the addition of additional information to the transfer packet and continuous establishment of connection for the transfer.
According to a second aspect of the present invention, there is solved a problem that the service may possibly be excluded by a security device for checking incorrect addresses since the sender address of the response packet to the client from the wide area load distribution apparatus is Lx, instead of a correct sender address Ly.
The wide area load distribution apparatus comprises a transfer transmission unit, a transfer reception unit, a server allocation unit, a server transfer unit, a client relay unit, a connection management unit and a load information management unit. Among them, the server allocation unit, transfer transmission unit and transfer reception unit for transferring a service demand from a client to a server of the other network are the same, whereas the server transfer unit for allocating the transfer packet to the server and the client relay unit for relaying the response packet of the transferred service from the server to the client are different from those of the first aspect.
The server allocation unit allocates a service for a client packet from a client to a server of its own network or a server of the other network which is selected on the basis of load information.
The transfer transmission unit creates a transfer packet containing the client packet in the form of transfer data when the server allocation unit allocates the service to the server of the other network, to transfer the transfer packet by a predetermined transfer protocol to a wide area load distribution apparatus of the other network, with the client packet being fetched from the transfer packet in the transferee transfer reception unit.
In response to this, the server transfer unit converts the destination of the client packet fetched by the transfer reception unit from a transferor wide area load distribution apparatus address to a server address and converts the sender from a client address to a transferor wide area load distribution apparatus address for sending to the server.
The client relay unit converts the destination of a server packet which is a response to a transferred service from a server, from a self address to a client address and converts the sender from a server address to a self address for relaying the packet to the client.
This aspect enables the servers belonging to different networks to be subjected to the load distribution without impairing the service consistency, with the result that the sites of arrangement of the servers to be subjected to the load distribution can freely be determined.
Furthermore, irrespective of the provision of the security device, the server 14 relays a packet with a correct destination address Lx and sender address S, so that the packet response can be transferred to the client without any problem caused by the security device for detecting the incorrect address.
The connection management unit has a connection management table into which a correlation among a client, a transferor and a server is entered for each service, and upon the reception of a transfer packet in the server transfer unit, it enters a correlation among a sender client address of a client packet fetched from the transfer packet, a transferor apparatus address and a destination server address into the connection management table.
For this reason, upon the reception of a transfer packet, the server transfer unit retrieves the connection management table from a sender client address C and a transferor apparatus address Lx of a client packet fetched from the transfer packet, to thereby acquire a destination server address S.
In case the server transfer unit has failed to acquire the destination server address as a result of retrieval of the connection management table, it selects a new destination server on the basis of the load information.
When the server transfer unit has selected a new destination server on the basis of the load information, the connection management unit newly enters into the connection management table a correlation among a sender client address C and a transferor apparatus address Lx of a client packet fetched from the transfer packet, and a destination server address S selected from the load information.
Utilizing the load information of the transfer packet, the server transfer unit provides the transfer packet with flag information indicative of a service connection demand or in-service, and the server transfer unit when recognizing the service connection demand from the flag information of the relay packet, acquires a new destination server on the basis of load information without retrieving the connection management table, whereas when recognizing in-service from the flag information of the relay packet, it acquires a destination server through the retrieval of the connection management table.
This will eliminate the need for the retrieval of the connection management table upon the packet transfer of a service demand from a client to the other network server, thereby reducing the processing burden of the wide area load distribution apparatus.
The load information management unit sends self load information to a load allocation instruction apparatus which collects load information from a plurality of wide area load distribution apparatuses for collective management, the load information management unit acquiring load information of the other wide area load distribution apparatuses from the load allocation instruction apparatus. It is thus possible through the transmission and acquisition of the load information to prevent the network load from increasing and through the centralized management of the load information to reduce the management cost and enhance the flexibility and extensibility.
According to a third aspect of the present invention there is provided a wide area load distribution method in which each network is provided with a wide area load distribution apparatus and in which services provided to clients by a plurality of servers existing in different networks are allocated depending on the state of load of the servers.
The wide area load distribution method comprises:
a server allocation step for allocating a service for a client packet from a client to a server of its own network or a server of the other network which is selected on the basis of load information;
a transfer transmission step for creating a transfer packet containing the client packet in the form of transfer data when the service is allocated to the server of the other network in the server allocation step, to transfer the transfer packet by a predetermined transfer protocol to a wide area load distribution apparatus of the other network;
a transfer reception step for fetching the client packet from the transfer packet when the transfer packet is received from a wide area load distribution apparatus of said the other network;
a server transfer step for converting the destination of the client packet fetched in the transfer reception step from a transferor wide area load distribution apparatus address to a server address and for converting the sender from a client address to a self address for sending to the server;
a client relay step for converting the destination of a server packet which is a response to a transferred service from a server, from a self address to a client address and for converting the sender from a server address to a transferor wide area load distribution apparatus address for relaying to the client;
a connection management step for holding for each service a correlation for retrieval among a client, a transferee and a server for a packet processed in the server allocation step, the transfer transmission step, the transfer reception step, the server transfer step and the client transfer step; and
a load information management step for interchanging for management the load information with the other wide area load distribution apparatus.
According to a fourth aspect of the present invention there is provided a wide area load distribution method which comprises:
a server allocation step for allocating a service for a client packet from a client to a server of its own network or a server of the other network which is selected on the basis of load information;
a transfer transmission step for creating a transfer packet containing the client packet in the form of transfer data when the service is allocated to the server of the other network in the server allocation step, to transfer the transfer packet by a predetermined transfer protocol to a wide area load distribution apparatus of said the other network;
a transfer reception step for fetching the client packet from the transfer packet when the transfer packet is received from a wide area load distribution apparatus of said the other network;
a server transfer step for converting the destination from a transferor wide area load distribution apparatus address to a server address and for converting the sender from a client address to a transferor wide area load distribution apparatus address for sending to the server;
a client relay step for converting the destination of a server packet which is a response to a transferred service from a server, from a self address to a client address and for converting the sender from a server address to a self address for relaying to the client;
a connection management step for holding for each service a correlation for retrieval among a client, a transferee and a server for a packet processed in the server allocation step, the transfer transmission step, the transfer reception step, the server transfer step and the client transfer step; and
a load information management step for interchanging for management the load information with the other wide area load distribution apparatus.
The above and other objects, aspects, features and advantages of the present invention will become more apparent from the following detailed description with reference to the accompanying drawings.